package dao;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import model.Escolaridade;
import util.ConexaoBD;

import com.mysql.jdbc.Connection;
import com.mysql.jdbc.PreparedStatement;



public class DAOEscolaridade extends ModelDAO<Escolaridade>{
	private DAOAluno daoAluno = new DAOAluno();
	
	public DAOEscolaridade() {
        super(Escolaridade.class);
    }
	
	public void save(Escolaridade e){
		super.begin();
		super.save(e);
		super.commit();
	}
	
	public void update(Escolaridade e){
		super.begin();
		super.update(e);
		super.commit();
	}
	
	public Escolaridade search(int cod){
		super.begin();
		Escolaridade e = super.search(cod);
		super.commit();
		return e;
	}
	
	public List<Escolaridade> listarTodos(){
		super.begin();
        List<Escolaridade> list = super.findAll();
        super.commit();
        return list;
    }
	
	public void delete(Escolaridade e){
		super.begin();
		super.delete(e.getCodEsc());
		super.commit();
	}
	
	public List<Escolaridade> listar(Integer codAluno) throws SQLException{
		// conectar banco
		Connection con = ConexaoBD.getConnection();
		PreparedStatement stmt = (PreparedStatement) con.prepareStatement ("select * from escolaridade, aluno where aluno.codAluno="+codAluno+" and escolaridade.codAluno=aluno.codAluno");
		ResultSet rs = stmt.executeQuery();
			
		List<Escolaridade> escolaridade = new ArrayList<Escolaridade>();
			
		while (rs.next()){
		//criando o objeto usuario
		Escolaridade esc = new Escolaridade();
		esc.setCodEsc(rs.getInt("codEsc"));
		esc.setNivelEsc(rs.getString("nivelEsc"));
		esc.setCursoEsc(rs.getString("cursoEsc"));
		esc.setAnoFimEsc(rs.getInt("anoFimEsc"));
		esc.setSituacaoEsc(rs.getString("situacaoEsc"));
		esc.setInstituicaoEsc(rs.getString("instituicaoEsc"));
		esc.setCidadeEsc(rs.getString("cidadeEsc"));
		esc.setUfEsc(rs.getString("ufEsc"));
		Integer codAl = rs.getInt("codAluno");
		esc.setAluno(daoAluno.search(codAl));
		
		//adicionando o objeto a lista
		escolaridade.add(esc);
		}
		
		//}
		return escolaridade;
    }
}
